// import { isObject, hasChanged } from '../utils/index.js';
// import { reactive } from './reactive.js';
// import track from '../effect/track.js';
// import trigger from '../effect/trigger.js';
// import { TrackOpTypes, TriggerOpTypes } from '../utils/index.js';
// TODO: 实现 ref 函数
// export const ref = (target) => {
//   return new RefImpl(target);
// };

// class RefImpl {
//   constructor(value) {
//     this._value = isObject(value) ? reactive(value) : value;
//   }
//   get value() {
//     // 收集依赖
//     track(this, TrackOpTypes.GET, 'value');
//     return this._value;
//   }
//   set value(newValue) {
//     // 检查值是否发生变化
//     if (hasChanged(newValue, this._value)) {
//       // 如果新值是对象，转换为响应式对象
//       if (isObject(newValue)) {
//         newValue = reactive(newValue);
//       }
//       this._value = newValue;
//       // 触发更新
//       trigger(this, TriggerOpTypes.SET, 'value');
//     }
//   }
// }
